// 使用 mysql2 模块连接 MySQL 数据库
import mysql from 'mysql2';

// 创建连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: '',
  database: 'demo'
});
// connection 对象有 query 方法，用于执行 SQL 语句
connection.query('SELECT * FROM users', (err, results, fields) => {
  if (err) throw err;
  console.log('返回结果:', results);
  console.log('字段信息:', fields);
});
// connection 对象有 execute 方法，用于执行 SQL 语句
connection.execute('SELECT * FROM users', (err, results, fields) => {
  if (err) throw err;
  console.log('返回结果:', results);
  console.log('字段信息:', fields);
});
// query 和 execute 方法的区别：
// execute 执行 SQL 语句，使用了预编译，可以防止 SQL 注入攻击。
// execute 的性能好于 query, 并且返回结果会根据字段类型进行转换。
// 所以，在绝大部分情况下，都建议使用 execute 方法。

// 执行带参数的 SQL 语句
connection.execute('SELECT * FROM users WHERE id = ?', [1], (err, results, fields) => {
  if (err) throw err;
  console.log('返回结果:', results);
  console.log('字段信息:', fields);
});
// 执行插入语句
connection.execute('INSERT INTO Users (username, password, email) VALUES (?, ?, ?)', ['张三', '123456', 'someone@qq.com'], (err, results, fields) => {
    if (err) throw err;
    console.log('返回结果:', results);
    console.log('字段信息:', fields);
});
//
// 关闭连接
connection.end();
